Skip to content

Bump main to 18.11.0 after vs18.10 snap - #14564

Merged
AlesProkop merged 1 commit into
mainfrom
alesprokop/bump-main-18.11
Jul 29, 2026
Merged

AlesProkop merged 1 commit into
mainfrom
alesprokop/bump-main-18.11

Conversation

@AlesProkop

Copy link
Copy Markdown
Member

Phase 3 of the 18.10 release checklist. Opens main for 18.11 now that vs18.10 has been cut.

⏸️ Do not merge yet. This must land only after the Phase 2 maestro-configuration PR (63340) is merged, so main's default channel is already VS 18.11 when the first bumped build publishes. Otherwise that build lands on the stale VS 18.10 channel.

Changes Made

3.1 — VersionPrefix 18.10.0 → 18.11.0.

3.2 — PackageValidationBaselineVersion → 18.10.0-1.26378.2. The latest Microsoft.Build package that is both published on the public dotnet-tools feed and built from a commit reachable from vs18.10 (official build 9434 run 20260728.2, sha bf5e076cdd).

3.3 — OptProfBaselineDrop refreshed to OptimizationData/DotNet-msbuild-Trusted/main/20260724.1/14773990/1, so the next vs* branch cut from main inherits valid OptProf data and its first official build succeeds without the manual Phase 4.2 rerun.

3.4 — Regenerated CompatibilitySuppressions.xml (4 files). See below.

Why the suppression files shrank

Moving the ApiCompat baseline from 18.9 to 18.10 made the baseline-specific CP0001 / CP0008 / PKV006 suppressions unnecessary, and the build treats unnecessary suppressions as an error. Those entries covered netstandard2.0 polyfill types (System.Index, System.Range, IsExternalInit, the System.Runtime.CompilerServices attributes, …) that differed against the 18.9 baseline but no longer differ against 18.10.

Only those entries were removed. The unrelated PKV004 framework suppressions are untouched — e.g. src/Framework still carries all 12 of them, and src/Tasks all 23.

Testing

Regenerated with build.cmd -pack /p:ApiCompatGenerateSuppressionFile=true, then verified with a clean pack run (no generate flag): 0 errors, 0 warnings.

Because a generation run does not prove validation passes, I also ran a control: git stash of these changes + clean artifacts/packages + build.cmd -pack on unmodified main → 0 errors. That confirms the suppression churn is attributable to the baseline change rather than a pre-existing failure, and that nothing is being masked.

⚠️ Follow-up: scripts/Get-PackageValidationBaseline.ps1 is stale

The Phase 3.2 helper cannot produce a correct answer any more and threw No eligible candidate builds found for 18.10. It hardcodes the old package format:

return "$ThisReleaseVersion.0-preview-$shortDate-$revStr"

but PreReleaseVersionLabel in eng/Versions.props is now 1, so official builds publish as 18.10.0-1.26378.2, not 18.10.0-preview-26378-02. The feed confirms the switchover — the last 18.10.0-preview-* was published 2026-07-10, everything since is 18.10.0-1.*.

The script is also stricter than the documented rule: it only accepts a build at the exact merge-base commit, but a branch cut minutes after a commit has no completed build at that sha yet. The checklist rule is "reachable from vs<THIS>", which admits any ancestor.

documentation/release-checklist.md and .github/skills/release/SKILL.md both document the -preview-NNNNN-NN format and need the same correction. Not fixed here to keep this PR to the branding change — happy to do it in a follow-up.

Phase 3 of the 18.10 release checklist (#14562).

3.1 VersionPrefix 18.10.0 -> 18.11.0.

3.2 PackageValidationBaselineVersion -> 18.10.0-1.26378.2. This is the
latest Microsoft.Build package that is both published on the public
dotnet-tools feed and built from a commit reachable from vs18.10
(official build 9434 run 20260728.2, sha bf5e076).

3.3 OptProfBaselineDrop refreshed to the current known-good main drop
(20260724.1/14773990/1) so the next vs* branch cut from main inherits
valid OptProf data and its first official build succeeds without the
manual Phase 4.2 rerun.

3.4 Regenerated CompatibilitySuppressions.xml. Changing the ApiCompat
baseline from 18.9 to 18.10 made the baseline-specific CP0001/CP0008/
PKV006 suppressions unnecessary, which the build treats as an error.
Only those entries were removed; the unrelated PKV004 framework
suppressions are untouched. Verified by a clean pack run that reports
0 errors and 0 warnings, and by confirming a control pack of unmodified
main also reports 0 errors (so the churn is attributable to the baseline
change, not a pre-existing failure).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 62609c67-b699-4098-997e-482f7c1253ff
@AlesProkop AlesProkop mentioned this pull request Jul 29, 2026
61 of 69 tasks
@AlesProkop
AlesProkop marked this pull request as ready for review July 29, 2026 12:38
@AlesProkop
AlesProkop requested a review from a team as a code owner July 29, 2026 12:38
Copilot Bot review requested due to automatic review settings July 29, 2026 12:38

ghost left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Opens main for the next release train by bumping MSBuild’s versioning and related baselines after the vs18.10 branch snap, ensuring subsequent official builds and validation use 18.11 branding and an 18.10-based API compat baseline.

Changes:

  • Update VersionPrefix to 18.11.0 and move PackageValidationBaselineVersion forward to an 18.10 build (18.10.0-1.26378.2).
  • Refresh the hardcoded OptProf seed drop so the next vs* branch cut from main starts with a valid OptProf baseline.
  • Regenerate/trim CompatibilitySuppressions.xml files to reflect the new ApiCompat baseline (removing now-unnecessary baseline suppressions).

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.

Show a summary per file
File Description
eng/Versions.props Bumps VersionPrefix to 18.11.0 and updates PackageValidationBaselineVersion to an 18.10 build.
.vsts-dotnet.yml Updates OptProfBaselineDrop to a newer known-good OptimizationData drop.
src/Build/CompatibilitySuppressions.xml Removes the prior PKV006 suppression; results in an empty suppressions file.
src/Framework/CompatibilitySuppressions.xml Removes baseline-specific suppressions; retains framework PKV004 suppressions.
src/Tasks/CompatibilitySuppressions.xml Removes baseline-specific suppressions; retains existing CP0007 and PKV004 suppressions.
src/Utilities/CompatibilitySuppressions.xml Removes baseline-specific suppressions; retains framework PKV004 suppressions.

@AlesProkop
AlesProkop merged commit 7f9f93c into main Jul 29, 2026
@AlesProkop
AlesProkop deleted the alesprokop/bump-main-18.11 branch July 29, 2026 12:46
@ViktorHofer ViktorHofer mentioned this pull request Aug 26, 2026
52 of 64 tasks
This was referenced Oct 16, 2026
This was referenced Oct 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants